package com.example.travelplan.app;

/**
 * Created by jonas on 19/06/2014.
 */

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

import com.example.travelplan.app.dominio.Cidade;
import com.example.travelplan.app.dominio.Controller;
import com.example.travelplan.app.dominio.Roteiro;


import android.widget.EditText;
import android.text.TextWatcher;
import android.text.Editable;
import java.util.List;

public class tabListLocalActivity extends Activity{

    MeuAdaptador_Atual listAdapter;


    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tablistlocal);

        listAdapter = new MeuAdaptador_Atual("");

        ListView listView = (ListView)findViewById(R.id.listViewLocal);
        listView.setAdapter(listAdapter);

       // final Intent criarRoteiro = new Intent(this, janeladescricaoActivity.class);

        final Intent myIntent = new Intent(this, janeladescricaoActivity.class);

        listView.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                                    long arg3) {

               TextView nomeCidade = (TextView)arg1.findViewById(R.id.textViewDataRoteiro);
               Cidade cidade = listAdapter.getCidade(nomeCidade.getText().toString());

                Bundle b = new Bundle();
                b.putInt("idCidade", cidade.getM_id()); //Your id
                myIntent.putExtras(b); //Put your id to your next Intent
                startActivity(myIntent);
                finish();
            }
        });

        EditText editText2 = (EditText) findViewById(R.id.campo_pesquisa_lugar);
        editText2.addTextChangedListener(
                new TextWatcher() {
                    @Override
                    public void onTextChanged(CharSequence s, int start, int before, int count) {
                        //here is your code
                        //myadapter.getFilter().filter(s);
                        //listview.setAdapter(myadapter);
                        String valor = s.toString();

                        listAdapter = new MeuAdaptador_Atual(valor);
                        ListView listView = (ListView)findViewById(R.id.listViewLocal);
                        listView.setAdapter(listAdapter);


                    }
                    @Override
                    public void beforeTextChanged(CharSequence s, int start, int count,
                                                  int after) {
                        // TODO Auto-generated method stub
                    }
                    @Override
                    public void afterTextChanged(Editable s) {
                        // TODO Auto-generated method stub
                        String valor = s.toString();

                    }
        } );


    }


    public class MeuAdaptador_Atual extends BaseAdapter {

        List<Cidade> cidadeList = null;

        MeuAdaptador_Atual(String nome) {
            cidadeList = Controller.getInstance().obterListaCidade(nome);
        }

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return cidadeList.size();
        }

        @Override
        public Cidade getItem(int arg0) {
            // TODO Auto-generated method stub
            return cidadeList.get(arg0);
        }

        @Override
        public long getItemId(int arg0) {
            // TODO Auto-generated method stub
            return arg0;
        }

        @Override
        public View getView(int arg0, View arg1, ViewGroup arg2) {

            if (arg1 == null) {
                LayoutInflater inflater = (LayoutInflater) tabListLocalActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                arg1 = inflater.inflate(R.layout.listitem_local, arg2, false);
            }

            TextView nomeCidade = (TextView) arg1.findViewById(R.id.textViewDataRoteiro);
            TextView distancia = (TextView) arg1.findViewById(R.id.textViewAtividade2);

            Cidade cidade = cidadeList.get(arg0);

            nomeCidade.setText(cidade.getM_nome());
            distancia.setText("30Km");

            return arg1;
        }

        public Cidade getCidade(int position) {
            return cidadeList.get(position);
        }

        public Cidade getCidade(String nome) {
            for (Cidade value : cidadeList) {
                if (value.getM_nome() == nome)
                    return value;
            }
            return null;
        }
    }

}